/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucsur.tp.colegio.daos;

import edu.ucsur.tp.colegio.beans.TipoBean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import edu.ucsur.tp.colegio.connections.DBConnection;

/**
 *
 * @author Administrador
 */
public class MySqlTipoSchoolDao {
    
    public TipoBean  getTipo (String codigotipo){
        
        String sql = "SELECT * FROM tipo WHERE codigotipo = ?";
        
        try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, codigotipo);
      //3. Ejecutar la sentencia (se recupera en un cursor)
      ResultSet rs = pstmt.executeQuery();
      //4. Recorriendo el cursor
      if (rs.next()) {
        TipoBean tipo = new TipoBean();
        
        tipo.setCodigotipo(rs.getString("codigotipo"));
        tipo.setServicio(rs.getString("servicio"));
        return tipo;
      }
      //5. Cerrando los recursos JDBC
      rs.close();
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
           
    }
    
    // public List<AlumnoBean>
    
     public List<TipoBean> getListaTipoPorFiltros(String filtroservicio) {
    List<TipoBean> listaTipo = new ArrayList<TipoBean>();
    
    String sql = "SELECT * FROM tipo WHERE servicio like ?";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, "%" + filtroservicio + "%");
      //3. Ejecutar la sentencia (se recupera en un cursor)
      ResultSet rs = pstmt.executeQuery();
      //4. Recorriendo el cursor
      while (rs.next()) {
        TipoBean tipo = new TipoBean();
        tipo.setCodigotipo(rs.getString("codigotipo"));
        tipo.setServicio(rs.getString("servicio"));
        listaTipo.add(tipo);
      }
      //5. Cerrando los recursos JDBC
      rs.close();
      pstmt.close();
      conn.close();
      //6. Devolver la lista
      return listaTipo;
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    return null;
  }
      
   public void insertar(TipoBean tipo) {
    String sql = "INSERT INTO tipo ( codigotipo, servicio ) ";
    sql += " VALUES ( ?, ? ) ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, tipo.getCodigotipo());
      pstmt.setString(2, tipo.getServicio());
      
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  } 
   
    public void eliminar(String codigotipo) {
    String sql = "DELETE FROM tipo WHERE codigotipo = ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los par�metros din�micos
      pstmt.setString(1, codigotipo);
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
     
    public void actualizar(TipoBean tipo) {
    String sql = "UPDATE alumno SET codigotipo = ?, servicio = ? ";
    try {
      //1. Obtener la conexi�n
      Connection conn = DBConnection.getConnection();
      //2. Obtenemos la sentencia Java (PreparedStatement)
      PreparedStatement pstmt = conn.prepareStatement(sql);
      //-- 2.1. Setear los parametros dinamicos
      pstmt.setString(1, tipo.getCodigotipo());
      pstmt.setString(2, tipo.getServicio());
      //3. Ejecutar la sentencia (se recupera en un cursor)
      pstmt.executeUpdate();
      //7. Cerrando los recursos JDBC
      pstmt.close();
      conn.close();
    } catch (Exception ex) {
      ex.printStackTrace();
    } 
   }    
    
        
}
